Цифровой рубль — это цифровая форма рубля.
Сейчас у нас есть наличная (банкноты и монеты) и безналичная (деньги на счетах) форма национальной валюты, а в дополнение к ним появилась ещё и цифровая.
Счета цифрового рубля будут открываться на платформе Центробанка. На этих счетах будет храниться цифровой рубль.
Операции с цифровыми рублями будут проходить на ПЦР.
Доступ к счетам цифрового рубля будет возможен через мобильные приложения банков и интернет‑банки.
По эквайрингу прием ЦР осуществляется в рамках Универсального платёжного кода
Сгенерировать универсальный одноразовый платёжный код возможно с помощью уже существующего метода «GetQRCd».
Сгенерированный QR‑код возможно оплатить как через СБП, так и с использованием ЦР.
При этом в настройках ТСП на ПШ Банка обязательно должен быть указан счёт ЦР.
Статус оплаты универсального одноразового платёжного кода возможно проверить с помощью уже существующего метода «GetQRCstatus».
При этом, в ответе к уже существующим статусам, добавляется еще два новых статуса для ЦР: «ENDD» и «ACDR».
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| status | String(an‑10) | y | При оплате по Цифровом рублю:
|
Сгенерировать универсальный многоразовый платёжный код возможно с помощью уже существующего метода «RegCashQRc».
Сгенерированный QR-код возможно оплатить как через СБП, так и с использованием ЦР.
При этом в настройках ТСП на ПШ Банка обязательно должен быть указан счёт ЦР.
Статус оплаты кассового универсального многоразового платёжного кода возможно проверить с помощью уже существующего метода «GetQRCstatus».
При этом, в ответе к уже существующим статусам, добавляется ещё два новых статуса для ЦР: «ENDD» и «ACDR».
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| status | String(an‑10) | y | При оплате по Цифровом рублю:
|
Запрос «ChangeAccForCashUniQr» направляется ТСП в Банк для выполнения запроса УПК API «Изменение параметров Многоразового/Кассового УПК», предназначенного для изменения отдельных параметров Многоразового или Кассового УПК, заданных при регистрации УПК.
Для Многоразового или Кассового УПК могут быть изменены:
Уникальный идентификатор терминала (параметр TermNo)
Получатель денежных средств в Переводе УПК или ТСП получателя (параметр merchantId). Новое значение merchantId может принадлежать как тому же ЮЛ, ИП или Самозанятому, которому принадлежало прежнее значение merchantId, так и другому ЮЛ, ИП или Самозанятому, зарегистрированному в НСПК
Ссылка для автоматического возврата Покупателя из приложения Банка в приложение или на сайт ТСП (параметр redirectUrl)
Набор Платёжных сервисов, с использованием которых может быть выполнен Перевод УПК по данному Многоразовому/Кассовому УПК и реквизиты для зачисления денежных средств в Переводе УПК, выполненном с использованием того или иного Платёжного сервиса, например, Счет ТСП в Банке ТСП, на который будут зачислены денежные средства в результате выполнения Операции СБП C2B (параметры Account и AccountDR)
В ответе ПШ Банка возвращает результат обработки запроса и, в случае успешной обработки — значения параметров, полученных в ответе от НСПК.
Метод ChangeAccForCashUniQr
a) Описание параметров запроса:
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| command | String (an-1…50) | y | Тип запроса. Константа «ChangeAccForCashUniQr» |
| TermNo | String (an‑20) | y | Уникальный идентификатор терминала |
| messageID | String (ans‑1024) | o | Уникальный идентификатор сообщения, GUID |
| qrcId | String (32) | o | Идентификатор Кассового УПК |
| account | String (an‑20) | o | Новый счёт ЮЛ для УПК: если заполнено — будет изменён счёт для оплаты через СБП в УПК если не заполнено — значение берётся из поля Account справочника терминалов |
| accountDR | String (55) | o | Новый счёт ЮЛ для ЦР: если заполнено — будет изменён счёт для оплаты ЦР в УПК если не заполнено — значение берётся из поля AccountDR справочника терминалов |
| NewTermNo | String (an‑20) | o | Новый уникальный идентификатор терминала. Поле обязательно, если НЕ переданы account, accountDR, NewMerchantId, redirectUrl |
| NewMerchantId | String (an‑12) | o | Новый Id мерчанта (магазина) в НСПК. Поле обязательно, если НЕ переданы account, accountDR, NewTermNo, redirectUrl |
| redirectUrl | String (ans‑1024) | o | Содержит ссылку для автоматического возврата в приложение или на сайт ТСП. Допускаются только символы в кодировке ASCII. Формат должен соответствовать правилам кодировки URL. Если требуется использовать в redirectUrl кириллические символы, необходимо перекодировать их в соответствующий ASCII код, используя percent-encoded octets согласно RFC3986 |
| paymentPageUrl | String (ans‑1024) | o | Ссылка для перенаправления Покупателя на Платёжную страницу Участника Сервиса УПК |
| fraudScore | String | o | Индикатор Подозрительной Операции Банка ТСП |
b) Примерный формат запроса:
1{ 2 "command": "ChangeAccForCashUniQr", 3 "TermNo": "90080567", 4 "messageID": "f9aa54ff-a615-44b8-aa6c-acab655c89f8", 5 "qrcId": "BS200031LP9DVTOR80O83FQ2ILIADFLM", 6 "account": "40201810100000088000", 7 "accountDR": "g.ab.cbrdc.wlt.clt.abcd0123-ab12-4a12-89ab-abcdef01234G", 8 "redirectUrl": "https://alfabank.ru/sme/payservice/sbp/", 9 "paymentPageUrl": " https://alfabank.ru/sme/payservice/sbp/", 10 "fraudScore": "0000000000000000", 11 "NewTermNo": "10000234", 12 "NewMerchantId": "MA0000020651" 13}
Правила заполнения и интерпретации параметров:
В запросе должен быть заполнен хотя бы один из параметров: account, accountDR, NewTermNo, NewMerchantId, redirectUrl. Если ни один из параметров не указан — будет возвращена ошибка c ErrorCode = "90" и message = "Не указан ни один из обязательных параметров"
account — будет выполнено изменение счёта ЮЛ, ИП или самозанятого для расчётов через СБП зарегистрированного УПК. Если значение параметра не передано в запросе — значение берётся из справочника терминалов
accountDR — будет выполнено изменение/добавление счета ЮЛ, ИП или самозанятого для расчётов ЦР зарегистрированного УПК. Если значение параметра не передано в запросе — значение берётся из справочника терминалов/ЮЛ.
Если параметр accountDR был передан в запросе, но длина его значения отличается от 55 — будет возвращена ошибка c ErrorCode = "301" и message = "Некорректно заполнены данные: Параметр accountDR должен содержать 55 символов"
NewTermNo — будет выполнено изменение номера терминала для зарегистрированной Кассовой ссылки СБП. Новый номер терминала должен принадлежать ТСТ текущего терминала TermNo, или ТСТ указанного NewMerchantId запроса
NewMerchantId — будет выполнено изменение ТСТ для зарегистрированной Кассовой ссылки СБП. Если поле NewTermNo в запросе отсутствует, то в справочнике ТСП (мерчанты) будет выполнена перепривязка существующего TermNo к новому NewMerchantId
redirectUrl — будет выполнено изменение ссылки автоматического возврата в приложение или на сайт ТСП для зарегистрированного Кассового УПК
c) Описание параметров ответа:
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| ErrorCode | String (an‑20) | y | Код ответа* |
| message | String (ans‑1024) | y | Расшифровка кода ответа** |
| messageID | String (ans‑1024) | o | Уникальный идентификатор сообщения, GUID — если ErrorCode = 0 |
| qrcId | String (an‑32) | o | Идентификатор QR-кода |
| TermNo | String (an‑20) | y | Уникальный идентификатор терминала |
| account | String (an‑20) | y/o | Cчёт для оплаты через СБП. В ответе должен присутствовать один из параметров account или accountDR, либо оба |
| accountDR | String (55) | y/o | Cчёт для оплаты ЦР. В ответе должен присутствовать один из параметров account или accountDR, либо оба |
| merchantId | String (an‑12) | y | Id мерчанта (магазина) в НСПК |
| status | String (an‑20) | o | Статус регистрации Платёжной или Информационной ссылки СБП («CREATED» — если ErrorCode=0) |
*, ** Таблица возможных кодов ответа приведена в приложении 2.
d) Примерный формат ответа:
200 ОК
1{ 2 "ErrorCode": "0", 3 "message": "OK", 4 "TermNo": "10000234", 5 "messageID": "f9aa54ff-a615-44b8-aa6c-acab655c89f8", 6 "qrcId": "BS200031LP9DVTOR80O83FQ2ILIADFLM", 7 "account": "40201810100000088000", 8 "accountDR": "g.ab.cbrdc.wlt.clt.abcd0123-ab12-4a12-89ab-abcdef01234G", 9 "status": "UPDATED", 10 "merchantId": "MA0000020651" 11}
400 Bad Request
{ "ErrorCode": "Код ответа", "message": "Расшифровка кода ответа" }
Сообщение отправляется из ПШ Банка на сервер ТСП и содержит Извещение Клиента-получателя об исполнении перевода ЦР (С2B) после получения соответствующего уведомления от ПлЦР.
Метод paymentDR/notification
a) Описание параметров запроса:
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| command | String (an‑1…50) | o | Константа «paymentDR/notification» |
| uniQrId | String (an‑32) | o | Идентификатор платежа в системе ЮЛ‑получателя |
| operationId | String | o | Идентификатор операции на ПлЦР |
| status | String (an‑20) | o | Статус платежа на ПлЦР ACDR — передаётся статус (аналог ACWP при оплате СБП C2B), если есть уведомление от ПлЦР об плате |
| amount | String (an‑1…12) | o | Сумма платежа в рублях с копейками |
| timestamp | YYYY-MM-DDThh: mm: ss[.SSS] | o | Дата и время исполнения распоряжения на ПлЦР |
| payrrn | String (n‑12) | y | Референсный номер платежа |
| BatchId | String (n‑4…8) | y | Уникальный идентификатор смены (если смена терминала открыта) |
| TermNo | String (an‑20) | y | Уникальный идентификатор терминала в AWGW |
| CreditDatePos | String (ans 1‑256) | y | Дата операции, установленная Банком Получателя в ходе обработки уведомления НСПК |
| merchantName | String (140) | y | Наименование ТСП |
| purpose | String (ans‑210) | y | Назначение платежа |
b) Примерный формат запроса:
1{ 2 "command": "paymentDR/notification", 3 "uniQrId": "AD2000670LSS7DN18SJQDNP4B05KLJL1", 4 "operationId": "546464AX45546", 5 "status": "ACWP", 6 "amount": "10241.21", 7 "timestamp": "2024-08-01T10:15:00.000Z", 8 "payrrn": "102345678912", 9 "BatchId": "998844", 10 "TermNo": "90080567", 11 "CreditDatePos": "20240802", 12 "merchantName": "Рога и Копыта", 13 "purpose": "Кофе и булочка" 14}
В ответ ожидается:
http-код «200» — Успешный ответ (Уведомление получено)
http-код «500» — Внутренняя ошибка